home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / SYS / s / OberonError.wrx < prev    next >
Text File  |  1996-09-26  |  3KB  |  158 lines

  1. /*
  2.  * REXX-SCRIPT für WRITE V 3.264
  3.  * Dies Script unterstützt den Umgang mit dem
  4.  * Amiga Oberon Compiler 3.0 von A+L.
  5.  * Dieses Script mit den Parametern FIRST, CURRENT, PREV oder LIST aus
  6.  * dem aktuellen Text heraus starten.
  7.  */
  8.  
  9. IF ~show('P',"WRITE")
  10. THEN DO
  11.  say 'Dieses Script läuft nur, wenn WRITE bereits gestartet wurde !'
  12.  exit 10
  13. END
  14.  
  15. ADDRESS "WRITE"
  16.  
  17. OPTIONS RESULTS
  18.  
  19. 'VERSIONCHECK 3848 "OberonError.wrx"'
  20. IF RC~=0 THEN DO
  21.   exit 10
  22. END
  23.  
  24. /*** Argumentkontrolle ***/
  25.  
  26. arg what
  27. if (what ~= "FIRST") & (what ~= "NEXT") & (what ~= "CURRENT") & (what ~= "PREV") & (what~="LIST") then do
  28.   "MESSAGEOK (Fehler:\nDieses Script muß mit FIRST, CURRENT, PREV oder LIST\nals Argument aufgerufen werden !)"
  29.   exit
  30. end
  31.  
  32. /*** Open oberonsupport.library ***/
  33.  
  34. libname = "oberonsupport.library"
  35.  
  36. if ~show("L", libname) then do
  37.   if ~addlib(libname, 0, -30, 1) then do
  38.     text = "Fehler :\n'" || libname "'\n" || "konnte nicht gefunden werden"
  39.     MESSAGEOK text
  40.   end
  41. end
  42.  
  43. /*** Filenamen holen ***/
  44.  
  45. "GETVAR (_File)" /* Nur Filenamen (ohne Pfad) holen */
  46. filename = result
  47.  
  48. if filename = "" then do
  49.   "MESSAGEOK (Fehler:\nKein Filename)"
  50.   exit
  51. end
  52.  
  53. "GETVAR (_FileName)" /* Kompletten Filenamen (mit Pfad) holen */
  54. filename = result
  55.  
  56. if right(filename,4) ~= ".mod" then do
  57.   "MESSAGEOK (Fehler:\n'$_File$'\nist kein Oberon Sourcecode !)"
  58.   exit
  59. end
  60.  
  61. filename = filename || 'E'
  62.  
  63. /*** Enthält Fehler ? ***/
  64.  
  65. count = GETERRCOUNT(filename)
  66. if count < 0 then do
  67.   "MESSAGEOK ('$_File$'\nenthält keine Fehler !)"
  68.   exit
  69. end
  70.  
  71. cnt = getclip("CurrentError")
  72.  
  73. if cnt = "" then do
  74.   cnt = 0
  75. end
  76.  
  77. if what = "LIST" then do
  78.   ShowErrorList()
  79. end
  80. if what = "FIRST" then do
  81.   cnt = 0
  82. end;
  83. if what = "NEXT" then do
  84.   cnt = cnt+1
  85. end;
  86. if what = "PREV" then do
  87.   cnt = cnt-1
  88. end
  89.  
  90. if cnt >= count then do
  91.   "MESSAGEOK ('$_File$'\nenthält keine weiteren Fehler !)"
  92.   exit
  93. end
  94.  
  95. if cnt < 0 then do
  96.   "MESSAGEOK (Erster Fehler\nbereits erreicht !)"
  97.   exit
  98. end
  99.  
  100. if ~GETERROR(filename, cnt, Error.) then do
  101.   "MESSAGEOK (Fehler:\nKann Fehlerdatei nicht laden !)"
  102.   exit
  103. end
  104.  
  105. GOTO Error.column Error.line
  106.  
  107. text = "Fehler Nr." cnt+1 "von" count || ":\n" || "`" || GETERRORTEXT(Error.num) || "'"
  108. text = Translate(text,"<>","()")
  109.  
  110. MESSAGEOK "(" || text || ")"
  111.  
  112. if ~setclip("CurrentError",cnt) then do
  113.   "MESSAGEOK (Fehler:\nKann mir aktuellen Fehler nicht merken !)"
  114. end
  115.  
  116. exit 0
  117.  
  118. ShowErrorList:
  119.  
  120. CLEARLIST 0
  121.  
  122. do x = 0 to count-1
  123.   if GETERROR(filename, x, Error.) then do
  124.     text = x+1 || " " || "`" || GETERRORTEXT(Error.num) || "'"
  125.     text = Translate(text,"<>","()")
  126.     ADDLIST "(" || text || ")" 0
  127.   end
  128. end
  129.  
  130. SHOWLIST 0 cnt "{@SELECT}"
  131.  
  132. if RC = 0 then do
  133.   Text = result
  134.   if Text~="" then do
  135.     Error = Word(Text,1)
  136.     cnt = Value(Error) - 1
  137.  
  138.     if ~GETERROR(filename, cnt, Error.) then do
  139.       "MESSAGEOK (Fehler:\nKann Fehlerdatei nicht laden !)"
  140.       exit
  141.     end
  142.  
  143.     GOTO Error.column Error.line
  144.  
  145.     text = "Fehler Nr." cnt+1 "von" count || ":\n" || "`" || GETERRORTEXT(Error.num) || "'"
  146.     text = Translate(text,"<>","()")
  147.  
  148.     MESSAGEOK "(" || text || ")"
  149.  
  150.     if ~setclip("CurrentError",cnt) then do
  151.       "MESSAGEOK (Fehler:\nKann mir aktuellen Fehler nicht merken !)"
  152.     end
  153.   end
  154. end
  155.  
  156. exit 0
  157.  
  158.